1 /************************************************************
2 * Copyright *
3 * Portions of this software are Copyright (c) 1993 - 2002, *
4 * Chad Z. Hower (Kudzu) and the Indy Pit Crew *
5 * - http://www.nevrona.com/Indy/ *
6 ************************************************************/
7 package org.indy;
8
9 import java.util.ArrayList;
10 import java.util.Collection;
11 import java.util.Collections;
12 import java.util.Iterator;
13 import java.util.List;
14 import java.util.ListIterator;
15
16
17 /***
18 * A specialized collection class for {@link IdCommnandHandler}
19 *
20 * This class is not thread safe without external sync.
21 *
22 *@author OTG
23 */
24 public class CommandHandlers implements List {
25 private final TCPServer server;
26 private final List commandHandlers = Collections.synchronizedList(
27 new ArrayList());
28
29 /***
30 * Constructs a new IdCommandHandlers collection.
31 *
32 *@param server The server instance that owns this collection.
33 */
34 public CommandHandlers(TCPServer server) {
35 this.server = server;
36 }
37
38 /***
39 * DOCUMENT ME!
40 *
41 * @return DOCUMENT ME!
42 */
43 public boolean isEmpty() {
44 return commandHandlers.isEmpty();
45 }
46
47 /***
48 * Returns the {@link IdCommandHandler} instance at <code>index</code>
49 *
50 *@param index The index of the reuiqred handler.
51 *@return The IdCommandHandler at <code>index</code>
52 *@throws IndexOutOfBoundsException if <code>index</code> is invalid.
53 */
54 public CommandHandler getCommandHandler(int index) {
55 boundsCheck(index);
56
57 return (CommandHandler) commandHandlers.get(index);
58 }
59
60 /***
61 * Returns the {@link IdTCPServer} that owns this collection.
62 *
63 *@return The IdTCPServer for this collection.
64 */
65 public TCPServer getServer() {
66 return server;
67 }
68
69 private void boundsCheck(int index) {
70 if ((index < 0) || (index > commandHandlers.size())) {
71 throw new IndexOutOfBoundsException();
72 }
73 }
74
75 /***
76 * Adds an {@link IdCommandHandler} to this collection.
77 *
78 *@param ch The IdCommandHandler to add.
79 */
80 public void add(CommandHandler ch) {
81 commandHandlers.add(ch);
82 }
83
84 /***
85 * Adds an {@link IdCommandHandler} to this collection at the specified index.
86 *
87 *@param ch The IdCommandHandler to add.
88 *@param index The index to add at.
89 *@throws IndexOutOfBoundsException If index is invalid.
90 */
91 public void add(CommandHandler ch, int index) {
92 boundsCheck(index);
93 commandHandlers.add(index, ch);
94 }
95
96 /***
97 * Returns the number of elements in this collection.
98 *
99 *@return The number of elements in this collection.
100 */
101 public int size() {
102 return commandHandlers.size();
103 }
104
105 /***
106 * DOCUMENT ME!
107 *
108 * @param o DOCUMENT ME!
109 *
110 * @return DOCUMENT ME!
111 */
112 public boolean contains(Object o) {
113 return commandHandlers.contains(o);
114 }
115
116 /***
117 * DOCUMENT ME!
118 *
119 * @return DOCUMENT ME!
120 */
121 public Iterator iterator() {
122 return commandHandlers.iterator();
123 }
124
125 /***
126 * DOCUMENT ME!
127 *
128 * @return DOCUMENT ME!
129 */
130 public Object[] toArray() {
131 return commandHandlers.toArray();
132 }
133
134 /***
135 * DOCUMENT ME!
136 *
137 * @param a DOCUMENT ME!
138 *
139 * @return DOCUMENT ME!
140 */
141 public Object[] toArray(Object[] a) {
142 return commandHandlers.toArray(a);
143 }
144
145 /***
146 * DOCUMENT ME!
147 *
148 * @param o DOCUMENT ME!
149 *
150 * @return DOCUMENT ME!
151 */
152 public boolean add(Object o) {
153 return commandHandlers.add(o);
154 }
155
156 /***
157 * DOCUMENT ME!
158 *
159 * @param o DOCUMENT ME!
160 *
161 * @return DOCUMENT ME!
162 */
163 public boolean remove(Object o) {
164 return commandHandlers.remove(o);
165 }
166
167 /***
168 * DOCUMENT ME!
169 *
170 * @param c DOCUMENT ME!
171 *
172 * @return DOCUMENT ME!
173 */
174 public boolean containsAll(Collection c) {
175 return commandHandlers.containsAll(c);
176 }
177
178 /***
179 * DOCUMENT ME!
180 *
181 * @param c DOCUMENT ME!
182 *
183 * @return DOCUMENT ME!
184 */
185 public boolean addAll(Collection c) {
186 return commandHandlers.addAll(c);
187 }
188
189 /***
190 * DOCUMENT ME!
191 *
192 * @param index DOCUMENT ME!
193 * @param c DOCUMENT ME!
194 *
195 * @return DOCUMENT ME!
196 */
197 public boolean addAll(int index, Collection c) {
198 return commandHandlers.addAll(index, c);
199 }
200
201 /***
202 * DOCUMENT ME!
203 *
204 * @param c DOCUMENT ME!
205 *
206 * @return DOCUMENT ME!
207 */
208 public boolean removeAll(Collection c) {
209 return commandHandlers.removeAll(c);
210 }
211
212 /***
213 * DOCUMENT ME!
214 *
215 * @param c DOCUMENT ME!
216 *
217 * @return DOCUMENT ME!
218 */
219 public boolean retainAll(Collection c) {
220 return commandHandlers.retainAll(c);
221 }
222
223 /***
224 * DOCUMENT ME!
225 */
226 public void clear() {
227 commandHandlers.clear();
228 }
229
230 /***
231 * DOCUMENT ME!
232 *
233 * @param o DOCUMENT ME!
234 *
235 * @return DOCUMENT ME!
236 */
237 public boolean equals(Object o) {
238 return commandHandlers.equals(o);
239 }
240
241 /***
242 * DOCUMENT ME!
243 *
244 * @param index DOCUMENT ME!
245 *
246 * @return DOCUMENT ME!
247 */
248 public Object get(int index) {
249 return commandHandlers.get(index);
250 }
251
252 /***
253 * DOCUMENT ME!
254 *
255 * @param index DOCUMENT ME!
256 * @param element DOCUMENT ME!
257 *
258 * @return DOCUMENT ME!
259 */
260 public Object set(int index, Object element) {
261 return commandHandlers.set(index, element);
262 }
263
264 /***
265 * DOCUMENT ME!
266 *
267 * @param index DOCUMENT ME!
268 * @param element DOCUMENT ME!
269 */
270 public void add(int index, Object element) {
271 commandHandlers.add(index, element);
272 }
273
274 /***
275 * DOCUMENT ME!
276 *
277 * @param index DOCUMENT ME!
278 *
279 * @return DOCUMENT ME!
280 */
281 public Object remove(int index) {
282 return commandHandlers.remove(index);
283 }
284
285 /***
286 * DOCUMENT ME!
287 *
288 * @param o DOCUMENT ME!
289 *
290 * @return DOCUMENT ME!
291 */
292 public int indexOf(Object o) {
293 return commandHandlers.indexOf(o);
294 }
295
296 /***
297 * DOCUMENT ME!
298 *
299 * @param o DOCUMENT ME!
300 *
301 * @return DOCUMENT ME!
302 */
303 public int lastIndexOf(Object o) {
304 return commandHandlers.lastIndexOf(o);
305 }
306
307 /***
308 * DOCUMENT ME!
309 *
310 * @return DOCUMENT ME!
311 */
312 public ListIterator listIterator() {
313 return commandHandlers.listIterator();
314 }
315
316 /***
317 * DOCUMENT ME!
318 *
319 * @param index DOCUMENT ME!
320 *
321 * @return DOCUMENT ME!
322 */
323 public ListIterator listIterator(int index) {
324 return commandHandlers.listIterator(index);
325 }
326
327 /***
328 * DOCUMENT ME!
329 *
330 * @param fromIndex DOCUMENT ME!
331 * @param toIndex DOCUMENT ME!
332 *
333 * @return DOCUMENT ME!
334 */
335 public List subList(int fromIndex, int toIndex) {
336 return commandHandlers.subList(fromIndex, toIndex);
337 }
338 }
This page was automatically generated by Maven